package com.eastfair.auth.service;

import com.eastfair.boot.service.SuperService;
import com.eastfair.auth.entity.FunctionRole;
import com.eastfair.core.base.R;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 
 * </p>
 *
 * @author ligang
 * @date 2021-07-26
 */
public interface FunctionRoleService extends SuperService<FunctionRole> {


    /**
     * 添加功能关联角色
     * @param roleId 角色id
     * @param funcntionIds 功能id集合
     * @return
     */
    R addOfFunction(Long roleId, List<Long> funcntionIds);

    /**
     * 剔除功能关联角色
     * @param funcntionId 功能id
     * @param roleIds 角色id集合
     * @return
     */
    R removeFunctionRole(Long funcntionId,List<Long> roleIds);

    /**
     * 剔除菜单关联角色
     * @param funcntionIds 功能id集合
     * @return
     */
    R removeRole(List<Long> funcntionIds);

    /**
     *剔除菜单关联角色
     * @param roleIds 角色id集合
     * @return
     */
    R removeFunction(List<Long> roleIds);

    /**
     * 查询角色下的事件
     * @param funcntionIds 功能id集合
     * @return
     */
    R<List<FunctionRole>> findOfFunction(List<Long> funcntionIds);

    /**
     * 条件查询
     * @param functionRole 功能实体
     * @param funcntionIds 功能id集合
     * @param roleIds  角色id集合
     * @return
     */
    List<FunctionRole> list(FunctionRole functionRole, List<Long> funcntionIds, List<Long> roleIds);
}
